一直以來最不會的科目就是演算法,因為完全搞不懂在講甚麼,很納悶為甚麼要有這麼多的演算法XD不過該面對的檻的還是得面對...透過圖解演算法這堂課,讓我對演篹法有不一樣的認識。
我們拿到的原始資料就是資料
資料結構就是資料+他們之間的關係(新增\刪除)
從資料變成資料結構就是要改變觀點+改變實際資料的排序
演算法就是使用資料的策略(遍歷\搜尋\DP)
從資料結構轉成演算法就是 創造更多使用資料的策略
透過演算法的實作就是我們要的成果
所以,一個原始資料,可以整理出不同的資結構,甚至在相同的資料結構中有不同的使用資料的策略、透過這些策略最後會產生不同好用的排序或是搜尋方式。
接著談談常常說到的BigO吧!
BigO是用來計算 時間與空間的複雜度 計算方式
它的目的是 提供一個簡化版的演算法的分析方法
其意義就是做這件事情的成本與總數N的關係,簡單來說就是"步驟計算"而不是時間計算
(以前都認為是計算這件事情所需要的時間,其實是錯誤的)
特色就是高次方會壓過低次方,也會忽略常數項。